Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>IBM RPG</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/IBM_RPG"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/ext.pygments.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-IBM_RPG rootpage-IBM_RPG skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">IBM RPG</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<style data-mw-deduplicate="TemplateStyles:r1295905060">
/* start https://en.wikipedia.org/ */


.mw-parser-output .infobox-subbox{padding:0;border:none;margin:-3px;width:auto;min-width:100%;font-size:100%;clear:none;float:none;background-color:transparent}.mw-parser-output .infobox-3cols-child{margin:auto}.mw-parser-output .infobox .navbar{font-size:100%}@media screen{html.skin-theme-clientpref-night .mw-parser-output .infobox-full-data:not(.notheme)>div:not(.notheme)[style]{background:#1f1f23!important;color:#f8f9fa}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .infobox-full-data:not(.notheme)>div:not(.notheme)[style]{background:#1f1f23!important;color:#f8f9fa}}@media(min-width:640px){body.skin--responsive .mw-parser-output .infobox-table{display:table!important}body.skin--responsive .mw-parser-output .infobox-table>caption{display:table-caption!important}body.skin--responsive .mw-parser-output .infobox-table>tbody{display:table-row-group}body.skin--responsive .mw-parser-output .infobox-table th,body.skin--responsive .mw-parser-output .infobox-table td{padding-left:inherit;padding-right:inherit}}


/* end https://en.wikipedia.org/ */
</style><table class="infobox vevent"><tbody><tr><th colspan="2" class="infobox-above" style="background-color:#e0e0e0;">RPG<br>Report Program Generator</th></tr><tr><td colspan="2" class="infobox-image"><span typeof="mw:File"></span></td></tr><tr><th scope="row" class="infobox-label"><a href="Programming_paradigm" title="Programming paradigm">Paradigm</a></th><td class="infobox-data"><a href="Programming_paradigm#Support_for_multiple_paradigms" title="Programming paradigm">Multi-paradigm</a></td></tr><tr><th scope="row" class="infobox-label"><a href="Software_developer" class="mw-redirect" title="Software developer">Developer</a></th><td class="infobox-data organiser"><a href="IBM" title="IBM">IBM</a></td></tr><tr><th scope="row" class="infobox-label">First&nbsp;appeared</th><td class="infobox-data">1959<span style="display:none">&nbsp;(<span class="bday dtstart published updated">1959</span>)</span></td></tr><tr><td colspan="2" class="infobox-full-data"></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="Software_release_life_cycle" title="Software release life cycle">Stable release</a></th><td class="infobox-data"><div style="margin:0px;">RPG IV version 7 release 4
/ October&nbsp;6,&nbsp;2020<span style="display: none;">&nbsp;(<span class="bday dtstart published updated itvstart">2020-10-06</span>)</span></div></td></tr><tr style="display:none"><td colspan="2">
</td></tr><tr><th scope="row" class="infobox-label"><a href="Type_system" title="Type system">Typing discipline</a></th><td class="infobox-data"><a href="Strong_and_weak_typing" title="Strong and weak typing">Strong</a>, <a href="Type_system#STATIC" title="Type system">static</a></td></tr><tr><th scope="row" class="infobox-label"><a href="Operating_system" title="Operating system">OS</a></th><td class="infobox-data"><a href="Control_Program_Facility" title="Control Program Facility">CPF</a>, <a href="System_Support_Program" title="System Support Program">SSP</a>, <a href="IBM_i" title="IBM i">OS/400</a>, <a href="IBM_i" title="IBM i">IBM i</a>, <a href="OS/VS1" title="OS/VS1">OS/VS1</a>, <a href="Z/OS" title="Z/OS">z/OS</a>, <a href="VSE_(operating_system)" title="VSE (operating system)">DOS/VSE</a>, <a href="VSE_(operating_system)" title="VSE (operating system)">VSE/SP</a>, <a href="VSE_(operating_system)" title="VSE (operating system)">VSE/ESA</a>, <a href="VSE_(operating_system)" title="VSE (operating system)">z/VSE</a>, <a href="VS/9" title="VS/9">VS/9</a>, <a href="PRIMOS" title="PRIMOS">PRIMOS</a>, <a href="OpenVMS" title="OpenVMS">OpenVMS</a>, <a href="Wang_Laboratories#The_Wang_VS_computer_line" title="Wang Laboratories">Wang VS</a>, <a href="Burroughs_MCP" title="Burroughs MCP">Burroughs MCP</a>, <a href="HP_Multi-Programming_Executive" title="HP Multi-Programming Executive">HP MPE</a>, <a href="MS-DOS" title="MS-DOS">MS-DOS</a>, <a href="OS/2" title="OS/2">OS/2</a>, <a href="Microsoft_Windows" title="Microsoft Windows">Microsoft Windows</a></td></tr><tr><th colspan="2" class="infobox-header" style="background-color: #EEEEEE;"><a href="Programming_language#Dialects,_flavors_and_implementations" title="Programming language">Dialects</a></th></tr><tr><td colspan="2" class="infobox-full-data">RPG, <a href="RPG_II" class="mw-redirect" title="RPG II">RPG II</a>, <a href="RPG_III" class="mw-redirect" title="RPG III">RPG III</a>, RPG&nbsp;400, <a href="RPG_IV" class="mw-redirect" title="RPG IV">RPG IV</a>, RPG/ILE; RPG/Free, Baby/36, Baby/400, Lattice&nbsp;RPG, VAX RPG II</td></tr><tr><th colspan="2" class="infobox-header" style="background-color: #EEEEEE;">Influenced by</th></tr><tr><td colspan="2" class="infobox-full-data"><a href="IBM_709/90_9PAC" title="IBM 709/90 9PAC">9PAC</a>, <a href="FARGO_(programming_language)" title="FARGO (programming language)">FARGO</a></td></tr></tbody></table>
<p><b>RPG</b> is a <a href="High-level_programming_language" title="High-level programming language">high-level programming language</a> for <a href="Business_software" title="Business software">business applications</a>, introduced in 1959 for the <a href="IBM_1401" title="IBM 1401">IBM 1401</a>. It is most well known as the primary programming language of IBM's <a href="Midrange_computer" title="Midrange computer">midrange computer</a> product line, including the <a href="IBM_i" title="IBM i">IBM i</a> <a href="Operating_system" title="Operating system">operating system</a>.<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> RPG has traditionally featured a number of distinctive concepts, such as the program cycle, and the column-oriented syntax.<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> The most recent version is <b>RPG IV</b>, which includes a number of modernization features, including free-form syntax.<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup>
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="Platforms">Platforms</h2></div>
<p>The RPG programming language originally was created by IBM for their 1401 systems. IBM later produced implementations for the <a href="IBM_7070" title="IBM 7070">7070/72/74</a><sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> and <a href="System/360" class="mw-redirect" title="System/360">System/360</a>;<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> RPG II became the primary programming language for their <a href="Midrange_computer" title="Midrange computer">midrange computer</a> product line, (the <a href="System/3" class="mw-redirect" title="System/3">System/3</a>, <a href="System/32" class="mw-redirect" title="System/32">System/32</a>, <a href="System/34" class="mw-redirect" title="System/34">System/34</a>, <a href="System/38" class="mw-redirect" title="System/38">System/38</a>, <a href="System/36" class="mw-redirect" title="System/36">System/36</a> and <a href="AS/400" class="mw-redirect" title="AS/400">AS/400</a>). There have also been implementations for <a href="Digital_Equipment_Corporation" title="Digital Equipment Corporation">DEC</a> <a href="VAX" title="VAX">VAX</a>, Sperry Univac BC/7, Univac system 80, Siemens <a href="BS2000" title="BS2000">BS2000</a>, Burroughs B700, <a href="Burroughs_B1700" title="Burroughs B1700">B1700</a>, Hewlett Packard <a href="HP_3000" title="HP 3000">HP 3000</a>, the <a href="ICL_2900" class="mw-redirect" title="ICL 2900">ICL 2900</a> series, Honeywell 6220 and 2020, Four-Phase IV/70 and IV/90 series, <a href="Singer_System_10" class="mw-redirect" title="Singer System 10">Singer System 10</a> and <a href="Wang_Laboratories#The_Wang_VS_computer_line" title="Wang Laboratories">WANG VS</a>, as well as miscellaneous compilers and runtime environments for Unix-based systems, such as Infinite36 (formerly Unibol 36), and PCs (Baby/400, Lattice-RPG).
</p><p>RPG II applications are still supported under the <a href="VSE_(operating_system)" title="VSE (operating system)">VSE</a><sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> and <a href="Z/OS" title="Z/OS">z/OS</a> operating systems,<sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> <a href="Unisys" title="Unisys">Unisys</a> <a href="Burroughs_MCP" title="Burroughs MCP">MCP</a>,<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> <a href="Microsoft_Windows" title="Microsoft Windows">Microsoft Windows</a><sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup> and <a href="OpenVMS" title="OpenVMS">OpenVMS</a>.<sup id="cite_ref-11" class="reference"><a href="#cite_note-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="History">History</h2></div>
<div class="mw-heading mw-heading3"><h3 id="Background">Background</h3></div>
<p>Originally developed by <a href="International_Business_Machines" class="mw-redirect" title="International Business Machines">IBM</a> in 1959, the name <i>Report Program Generator</i> was descriptive of the purpose of the language: generation of reports from data files.<sup id="cite_ref-12" class="reference"><a href="#cite_note-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup> <a href="FOLDOC" class="mw-redirect" title="FOLDOC">FOLDOC</a> accredits Wilf Hey with work at IBM that resulted in the development of RPG.<sup id="cite_ref-13" class="reference"><a href="#cite_note-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup> <a href="FARGO_Programming_Language" class="mw-redirect" title="FARGO Programming Language">FARGO</a> (<b>F</b>ourteen-o-one <b>A</b>utomatic <b>R</b>eport <b>G</b>eneration <b>O</b>peration) was the predecessor to RPG on the <a href="IBM_1401" title="IBM 1401">IBM 1401</a>.
</p><p>Both languages were intended to facilitate ease of transition for IBM <a href="Tabulating_machine" title="Tabulating machine">tabulating machine</a> (Tab) <a href="Unit_record_equipment" title="Unit record equipment">unit record equipment</a> technicians to the then-new computers. Tab machine technicians were accustomed to plugging wires into <a href="Plugboard" title="Plugboard">control panels</a> to implement input, output, control and counter operations (add, subtract, multiply, divide). Tab machines programs were executed by impulses emitted in a machine cycle; hence, FARGO and RPG emulated the notion of the machine cycle with the program cycle. RPG was superior to and rapidly replaced FARGO as the report generator program of choice.
</p><p>IBM later implemented RPG(7070-RG-902), but not FARGO, on the <a href="IBM_7070" title="IBM 7070">IBM 7070</a>/72/74.<sup id="cite_ref-14" class="reference"><a href="#cite_note-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-15" class="reference"><a href="#cite_note-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup>
</p><p>The alternative languages generally available at the time were <a href="Assembly_language" title="Assembly language">Assembler</a>, <a href="COBOL" title="COBOL">COBOL</a> or <a href="FORTRAN" class="mw-redirect" title="FORTRAN">FORTRAN</a>. Assembler and COBOL were more common in mainframe business operations (<a href="System/360" class="mw-redirect" title="System/360">System/360</a> models 30 and above) and RPG more commonly used by customers who were in transition from tabulating equipment (System/360 model 20).
</p>
<div class="mw-heading mw-heading3"><h3 id="RPG_II">RPG II</h3></div>
<style data-mw-deduplicate="TemplateStyles:r1236090951">
/* start https://en.wikipedia.org/ */


.mw-parser-output .hatnote{font-style:italic}.mw-parser-output div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.mw-parser-output .hatnote i{font-style:normal}.mw-parser-output .hatnote+link+.hatnote{margin-top:-0.5em}@media print{body.ns-0 .mw-parser-output .hatnote{display:none!important}}


/* end https://en.wikipedia.org/ */
</style><div role="note" class="hatnote navigation-not-searchable">Main article: <a href="RPG_II" class="mw-redirect" title="RPG II">RPG II</a></div>
<p><i>RPG II</i> was introduced about 1969 with the <a href="System/3" class="mw-redirect" title="System/3">System/3</a> series of computers. It was later used on <a href="System/32" class="mw-redirect" title="System/32">System/32</a>, <a href="System/34" class="mw-redirect" title="System/34">System/34</a>, and <a href="System/36" class="mw-redirect" title="System/36">System/36</a>, with an improved version of the language. RPG II was also available for larger systems, including the <a href="IBM_System/370" title="IBM System/370">IBM System/370</a> mainframe running <a href="DOS/VSE" class="mw-redirect" title="DOS/VSE">DOS/VSE</a> (then <a href="VSE/SP" class="mw-redirect" title="VSE/SP">VSE/SP</a>, <a href="VSE/ESA" class="mw-redirect" title="VSE/ESA">VSE/ESA</a>, and <a href="Z/VSE" class="mw-redirect" title="Z/VSE">z/VSE</a>). <a href="International_Computers_Limited" title="International Computers Limited">ICL</a> also produced a version on its <a href="ICL_VME" title="ICL VME">VME/K</a> operating system.
</p><p>In the early days of RPG, its major strength was the <i>program cycle</i>. A programmer would write code to process an individual record, and the program cycle would execute the change against every record of a file, taking care of the control flow. At that time each record (individual punched card) would be compared to each line in the program, which would act upon the record, or not, based upon whether that line had an "indicator" turned "on" or "off". The indicator consisted of a set of logical variables numbered 01–99 for user-defined purposes, or other smaller sets based upon record, field, or report processing functions. The concept of level breaks and matching records is unique to the RPG II language, and was originally developed with card readers in mind. The matching record feature of the cycle enabled easy processing of files having a header-to-detail relationship. RPG programs written to take advantage of the program cycle could produce complex reports with far fewer lines of computer code than programs written in <a href="COBOL" title="COBOL">COBOL</a> and other business-centric languages.
</p><p>The program File Specifications, listed all files being written to, read from or updated, followed by <a href="Data_definition_specification" title="Data definition specification">Data Definition Specifications</a> containing program elements such as Data Structures and dimensional arrays, much like a "Working-Storage" section of a COBOL program. This is followed by Calculation Specifications, which contain the executable instructions. Output Specifications can follow which can be used to determine the layout of other files or reports. Alternatively files, some <a href="Data_structure" title="Data structure">data structures</a> and reports can be defined externally, mostly eliminating the need to hand code input and output ("<a href="Input/output" title="Input/output">I/O</a>") specifications.
</p>
<div class="mw-heading mw-heading3"><h3 id="RPG_III">RPG III</h3></div>
<div role="note" class="hatnote navigation-not-searchable">Main article: <a href="RPG_III" class="mw-redirect" title="RPG III">RPG III</a></div>
<p><i>RPG III</i> was created for the <a href="System/38" class="mw-redirect" title="System/38">System/38</a> and its successor the <a href="AS/400" class="mw-redirect" title="AS/400">AS/400</a>. RPG III significantly departed from the original language, providing modern structured constructs like IF-ENDIF blocks, DO loops, and <a href="Subroutine" class="mw-redirect" title="Subroutine">subroutines</a>. RPG III was also available for larger systems including the <a href="IBM_System/370" title="IBM System/370">IBM System/370</a> mainframe running <a href="OS/VS1" title="OS/VS1">OS/VS1</a>. It was also available from <a href="Unisys" title="Unisys">Unisys</a> for the <a href="VS/9" title="VS/9">VS/9</a> operating system running on the <a href="UNIVAC_Series_90" title="UNIVAC Series 90">UNIVAC Series 90</a> mainframes.
</p><p>Since the introduction of the <a href="IBM_System/38" title="IBM System/38">IBM System/38</a> in 1979 most RPG programmers discontinued use of the cycle in favor of controlling program flow with standard looping constructs, although IBM has continued to provide backward compatibility for the cycle.
</p>
<div class="mw-heading mw-heading4"><h4 id="DE/RPG">DE/RPG</h4></div>
<p><i>DE/RPG</i> or Data Entry RPG was exclusively available on the <a href="IBM_5280" title="IBM 5280">IBM 5280</a> series of data-entry workstations in the early '80s. It was similar to RPG III but lacking external Data Descriptions (DDS) to describe data(files) like on the System/38 and its successors. Instead, the DDS part had to be included into the RPG source itself.
</p>
<div class="mw-heading mw-heading4"><h4 id="RPG/400">RPG/400</h4></div>
<p><i>RPG/400</i> was effectively RPG III running on AS/400. IBM renamed the RPG compiler as "RPG/400" but at the time of its introduction it was identical to the RPG III compiler on System/38. Virtually all IBM System/38 products were rebranded as xxx/400 and the RPG compiler was no exception. RPG III compiled with the RPG/400 compiler offered nothing new to the RPG III language until IBM began development of new operation codes, such as SCAN, CAT and XLATE after several years of AS/400 availability. These enhancements to RPG III were not available in the System/38 version of RPG III.
</p>
<div class="mw-heading mw-heading3"><h3 id="RPG_IV_and_ILE_RPG">RPG IV and ILE RPG</h3></div>
<p><i>RPG IV</i>, a.k.a. <i>RPG ILE</i>,<sup id="cite_ref-16" class="reference"><a href="#cite_note-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup> was released in 1994 as part of the V3R2 release of <a href="OS/400" class="mw-redirect" title="OS/400">OS/400</a> (now known as IBM i).<sup id="cite_ref-17" class="reference"><a href="#cite_note-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup>
<sup id="cite_ref-18" class="reference"><a href="#cite_note-18"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup>
</p><p>With the release of RPG IV, the RPG name was officially no longer an <a href="Initialism" class="mw-redirect" title="Initialism">initialism</a>. RPG IV offered a greater variety of expressions within its Extended Factor-2 Calculation Specification and, later in life, its free-format Calculation Specifications and Procedure syntax.
RPG IV in the <a href="Integrated_Language_Environment" title="Integrated Language Environment">Integrated Language Environment framework</a> is known as ILE RPG, and user guides explain the nuances of both.<sup id="cite_ref-19" class="reference"><a href="#cite_note-19"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-20" class="reference"><a href="#cite_note-20"><span class="cite-bracket">[</span>20<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-21" class="reference"><a href="#cite_note-21"><span class="cite-bracket">[</span>21<span class="cite-bracket">]</span></a></sup> RPG IV and ILE RPG are supported by IBM in the current IBM i platform.<sup id="cite_ref-22" class="reference"><a href="#cite_note-22"><span class="cite-bracket">[</span>22<span class="cite-bracket">]</span></a></sup>
</p><p>In 2001, with the release of <a href="IBM_i" title="IBM i">OS/400</a> V5R1, RPG IV offered greater freedom for calculations than offered by the Extended Factor-2 Calculation Specification: a <i>free-format</i> text-capable source entry, as an alternative to the original column-dependent source format. The "/FREE" calculation did not require the operation code to be placed in a particular column; the operation code is optional for the EVAL and CALLP operations; and syntax generally more closely resembles that of mainstream, general-purpose programming languages. Until November 2013, the free format applied exclusively to the calculation specifications.<sup id="cite_ref-23" class="reference"><a href="#cite_note-23"><span class="cite-bracket">[</span>23<span class="cite-bracket">]</span></a></sup> With the <a href="IBM_i" title="IBM i">IBM i</a> V7R1 TR7 upgrade to the language, the "/free" and "/end-free" calculations are no longer necessary, and the language has finally broken the ties to punched cards.
</p><p>IBM Rational Developer for i (RDi),<sup id="cite_ref-24" class="reference"><a href="#cite_note-24"><span class="cite-bracket">[</span>24<span class="cite-bracket">]</span></a></sup> an <a href="Eclipse_(software)" title="Eclipse (software)">Eclipse</a>-based <a href="Integrated_Development_Environment" class="mw-redirect" title="Integrated Development Environment">Integrated Development Environment</a>, is recommended by IBM for RPG development.<sup id="cite_ref-25" class="reference"><a href="#cite_note-25"><span class="cite-bracket">[</span>25<span class="cite-bracket">]</span></a></sup> The Source Entry Utility (SEU) text editor is no longer recommended for RPG development, and development ceased after IBM i 6.1.<sup id="cite_ref-26" class="reference"><a href="#cite_note-26"><span class="cite-bracket">[</span>26<span class="cite-bracket">]</span></a></sup> Other legacy developer tools include CODE/400 (based on IBM WorkFrame/2) and <a href="VisualAge" title="VisualAge">VisualAge for RPG</a>.
</p>
<div class="mw-heading mw-heading4"><h4 id="Continuing_language_enhancements">Continuing language enhancements</h4></div>
<p>IBM continues to enhance the RPG language<sup id="cite_ref-27" class="reference"><a href="#cite_note-27"><span class="cite-bracket">[</span>27<span class="cite-bracket">]</span></a></sup> via software releases and intra-release “technology refreshes” (TRs).<sup id="cite_ref-28" class="reference"><a href="#cite_note-28"><span class="cite-bracket">[</span>28<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-29" class="reference"><a href="#cite_note-29"><span class="cite-bracket">[</span>29<span class="cite-bracket">]</span></a></sup> More built-in functions (BIFs) have been added. It has the ability to link to <a href="Java_(programming_language)" title="Java (programming language)">Java</a> objects,<sup id="cite_ref-30" class="reference"><a href="#cite_note-30"><span class="cite-bracket">[</span>30<span class="cite-bracket">]</span></a></sup> and IBM i <a href="Application_programming_interface" class="mw-redirect" title="Application programming interface">APIs</a>; it can be used to write <a href="Common_Gateway_Interface" title="Common Gateway Interface">CGI</a> programs with the help of IBM's <a href="Cgidev2" title="Cgidev2">Cgidev2</a> Web toolkit,<sup id="cite_ref-31" class="reference"><a href="#cite_note-31"><span class="cite-bracket">[</span>31<span class="cite-bracket">]</span></a></sup> the <a href="Linoma_Software" title="Linoma Software">RPG Toolbox</a>, and other commercial Web-enabled packages. Even with the changes, it retains a great deal of backward compatibility, so an RPG program written 37 years ago could run today with little or no modification.
</p><p>The SQL precompiler allows current RPG developers to take advantage of IBM's cost-based SQE (SQL Query Engine). With the traditional F-Spec approach a developer had to identify a specific access path to a data set, now they can implement standard embedded SQL statements directly in the program. When compiled, the SQL precompiler transforms SQL statements into RPG statements which call the database manager programs that ultimately implement the query request.
</p><p>The RPG IV language is based on the <a href="EBCDIC" title="EBCDIC">EBCDIC</a> character set, but also supports UTF-8, UTF-16 and many other character sets. The threadsafe aspects of the language are considered idiosyncratic by some as the compiler team has addressed threads by giving each thread its own static storage, rather than make the RPG run-time environment re-entrant. This has been noted to muddle the distinction between a thread and a process (making RPG IV threads a kind of hybrid between threads and processes).
</p><p>In 2010, IBM launched <i>RPG Open Access</i>, also known as <i>Rational Open Access: RPG Edition</i>. It allows new I/O handlers to be defined by a programmer - enabling data to be read from and written to sources which RPG does not provide inbuilt support for.<sup id="cite_ref-32" class="reference"><a href="#cite_note-32"><span class="cite-bracket">[</span>32<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Data_types">Data types</h2></div>
<p>RPG supports the following data types.
</p><p><b>Note:</b><br>The character in the <i>data type</i> column is the character that is encoded on the Definition Specification in the column designated for data type. To compare, in a language like C where definitions of variables are free-format and would use a keyword such as <b>int</b> to declare an integer variable, in RPG, a variable is defined with a fixed-format Definition Specification. In the Definition Specification, denoted by a letter <b>D</b> in column <b>6</b> of a source line, the data type character would be encoded in column <b>40</b>. Also, if the <i>data type</i> character is omitted, that is, left blank, the default is <b>A</b> if no decimal positions are specified, P when decimal positions are specified for stand-along fields, and <b>S</b> (ZONED) when decimal positions are specified within a data structure.
</p>
<table class="wikitable sortable" style="width:100%;">

<tbody><tr>
<th style="width:10%">Data type
</th>
<th style="width:20%">Name
</th>
<th style="width:25%">Length
</th>
<th style="width:45%">Description
</th></tr>
<tr>
<td style="text-align:center"><code>A</code>
</td>
<td>Alphanumeric character
</td>
<td>1 to 16,773,104 bytes (fixed)<br>1 to 16,773,100 bytes (varying-length)
</td>
<td>Alphanumeric character
</td></tr>
<tr>
<td style="text-align:center"><code>B</code>
</td>
<td>Binary numeric
</td>
<td>1 byte (8-bit)<br>2 byte (16-bit)<br>4 bytes (32-bit)<br>8 bytes (64-bit)
</td>
<td>Signed binary integer
</td></tr>
<tr>
<td style="text-align:center"><code>C</code>
</td>
<td>UCS-2 character
</td>
<td>1 to 8,386,552 characters (fixed)<br>1 to 8,386,550 characters (varying)
</td>
<td>16-bit UCS-2 character (<a href="DBCS" class="mw-redirect" title="DBCS">DBCS</a> or EGCS)
</td></tr>
<tr>
<td style="text-align:center"><code>D</code>
</td>
<td>Date
</td>
<td>10 bytes
</td>
<td>Date: year, month, day
</td></tr>
<tr>
<td style="text-align:center"><code>F</code>
</td>
<td><a href="Floating_point" class="mw-redirect" title="Floating point">Floating point</a> numeric
</td>
<td>4 bytes (32-bit)<br>8 bytes (64-bit)
</td>
<td>Signed binary floating-point real
</td></tr>
<tr>
<td style="text-align:center"><code>G</code>
</td>
<td>Graphic character
</td>
<td>1 to 8,386,552 characters (fixed)<br>1 to 8,386,550 characters (varying)
</td>
<td>16-bit graphic character (<a href="DBCS" class="mw-redirect" title="DBCS">DBCS</a> or EGCS)
</td></tr>
<tr>
<td style="text-align:center"><code>I</code>
</td>
<td>Integer numeric
</td>
<td>1 byte (8-bit)<br>2 bytes (16-bit)<br>4 bytes (32-bit)<br>8 bytes (64-bit)
</td>
<td>Signed binary integer
</td></tr>
<tr>
<td style="text-align:center"><code>N</code>
</td>
<td><a href="Character_indicator" class="mw-redirect" title="Character indicator">Character indicator</a>
</td>
<td>1 byte
</td>
<td>'1' = TRUE<br>'0' = FALSE
</td></tr>
<tr>
<td style="text-align:center"><code>O</code>
</td>
<td>Object
</td>
<td>Size undisclosed
</td>
<td>Object reference
</td></tr>
<tr>
<td style="text-align:center"><code>P</code>
</td>
<td><a href="Packed_decimal" class="mw-redirect" title="Packed decimal">Packed decimal</a> numeric
</td>
<td>1 to 63 digits,<br>2 digits per byte plus sign
</td>
<td>Signed fixed-point decimal number with integer and fraction digits
</td></tr>
<tr>
<td style="text-align:center"><code>S</code>
</td>
<td><a href="Zoned_decimal" class="mw-redirect" title="Zoned decimal">Zoned decimal</a> numeric
</td>
<td>1 to 63 digits,<br>1 digit per byte
</td>
<td>Signed fixed-point decimal number with integer and fraction digits
</td></tr>
<tr>
<td style="text-align:center"><code>T</code>
</td>
<td>Time
</td>
<td>8 bytes
</td>
<td>Time: hour, minute, second
</td></tr>
<tr>
<td style="text-align:center"><code>U</code>
</td>
<td>Integer numeric
</td>
<td>1 byte (8-bit)<br>2 bytes (16-bit)<br>4 bytes (32-bit)<br>8 bytes (64-bit)
</td>
<td>Unsigned binary integer
</td></tr>
<tr>
<td style="text-align:center"><code>Z</code>
</td>
<td><a href="Timestamp" title="Timestamp">Timestamp</a>
</td>
<td>26 bytes
</td>
<td><a href="System_time" title="System time">Date and time</a>:<br>&nbsp; year, month, day, hour, minute, second, microseconds
</td></tr>
<tr>
<td style="text-align:center"><code>*</code>
</td>
<td><a href="Pointer_(computer_programming)#Based_pointer" title="Pointer (computer programming)">Basing-Pointer</a><br><a href="Pointer_(computer_programming)#Function_pointer" title="Pointer (computer programming)">Procedure-Pointer</a><br>System-Pointer
</td>
<td>16 bytes
</td>
<td>Address to Data<br>Address to Activated Procedure<br>Address to Object
</td></tr></tbody></table>
<div class="mw-heading mw-heading2"><h2 id="Example_code">Example code</h2></div>
<p>The following program receives a customer number as an input parameter and returns the name and address as output parameters.
This is the most primitive version of RPG IV syntax. The same program is shown later with gradually more modern versions of the syntax and gradually more relaxed rules.
</p>
<pre> * Historically RPG was columnar in nature, though free-formatting
* was allowed under particular circumstances.
* The purpose of various lines code are determined by a
* letter code in column 6.
* An asterisk (*) in column 7 denotes a comment line

* "F" (file) specs define files and other i/o devices
F ARMstF1 IF E K Disk Rename(ARMST:RARMST)

* "D" (data) specs are used to define variables
D pCusNo S 6p
D pName S 30a
D pAddr1 S 30a
D pAddr2 S 30a
D pCity S 25a
D pState S 2a
D pZip S 10a

* "C" (calculation) specs are used for executable statements
* Parameters are defined using plist and parm opcodes
C *entry plist
C parm pCusNo
C parm pName
C parm pAddr1
C parm pAddr2
C parm pCity
C parm pState
C parm pZip

* The "chain" command is used for random access of a keyed file
C pCusNo chain ARMstF1

* If a record is found, move fields from the file into parameters
C if %found
C eval pName = ARNm01
C eval pAddr1 = ARAd01
C eval pAddr2 = ARAd02
C eval pCity = ARCy01
C eval pState = ARSt01
C eval pZip = ARZp15
C endif

* RPG makes use of switches. One switch "LR" originally stood for "last record"
* LR flags the program and its dataspace as removable from memory

C eval *InLR = *On
</pre>
<p>The same program using free calculations available starting in V5R1:
</p>
<pre> * "F" (file) specs define files and other i/o devices
FARMstF1 IF E K Disk Rename(ARMST:RARMST)

* "D" (data) specs are used to define variables and parameters
* The "prototype" for the program is in a separate file
* allowing other programs to call it
/copy cust_pr
* The "procedure interface" describes the *ENTRY parameters
D getCustInf PI
D pCusNo 6p 0 const
D pName 30a
D pAddr1 30a
D pAddr2 30a
D pCity 25a
D pState 2a
D pZip 10a
/free
// The "chain" command is used for random access of a keyed file
chain pCusNo ARMstF1;

// If a record is found, move fields from the file into parameters
if %found;
pName = ARNm01;
pAddr1 = ARAd01;
pAddr2 = ARAd02;
pCity = ARCy01;
pState = ARSt01;
pZip = ARZp15;
endif;

// RPG makes use of switches. One switch "LR" originally stood for "last record"
// LR actually flags the program and its dataspace as removable from memory.
*InLR = *On;
/end-free
</pre>
<p>Assume the ARMSTF1 example table was created using the following SQL Statement:
</p>
<div class="mw-highlight mw-highlight-lang-sql mw-content-ltr" dir="ltr"><pre><span class="k">create</span><span class="w"> </span><span class="k">table</span><span class="w"> </span><span class="n">armstf1</span>
<span class="p">(</span><span class="n">arcnum</span><span class="w"> </span><span class="nb">decimal</span><span class="p">(</span><span class="mi">7</span><span class="p">,</span><span class="mi">0</span><span class="p">),</span>
<span class="w"> </span><span class="n">arname</span><span class="w"> </span><span class="nb">char</span><span class="p">(</span><span class="mi">30</span><span class="p">),</span>
<span class="w"> </span><span class="n">aradd1</span><span class="w"> </span><span class="nb">char</span><span class="p">(</span><span class="mi">30</span><span class="p">),</span>
<span class="w"> </span><span class="n">aradd2</span><span class="w"> </span><span class="nb">char</span><span class="p">(</span><span class="mi">30</span><span class="p">),</span>
<span class="w"> </span><span class="n">arcity</span><span class="w"> </span><span class="nb">char</span><span class="p">(</span><span class="mi">25</span><span class="p">),</span>
<span class="w"> </span><span class="n">arstte</span><span class="w"> </span><span class="nb">char</span><span class="p">(</span><span class="mi">2</span><span class="p">),</span>
<span class="w"> </span><span class="n">arzip</span><span class="w"> </span><span class="nb">char</span><span class="p">(</span><span class="mi">10</span><span class="p">))</span>
</pre></div>
<p>The same program using free calculations and embedded SQL:
</p>
<pre> * RPG IV no longer requires the use of the *INLR indicator to terminate a program.
* by using the MAIN keyword on the "H" (Header) spec, and identifying the "main" or
* entry procedure name, the program will begin and end normally without using the
* decades-old RPG Cycle and instead a more "C like" begin and end logic.
H MAIN(getCustInf)
* "D" (data) specs are used to define variables and parameters
* The "prototype" for the program is in a separate file
* allowing other programs to call it
/copy cust_pr
* The "procedure interface" describes the *ENTRY parameters
P getCustInf B
D getCustInf PI
D pCusNo 6p 0 const
D pName 30a
D pAddr1 30a
D pAddr2 30a
D pCity 25a
D pState 2a
D pZip 10a
/free
exec sql select arName, arAddr1, arAdd2, arCity, arStte, arZip
into :pName, :pAddr1, :pAddr2, :pCity, :pState, :pZip
from ARMstF1
where arCNum = :pCusNo
for fetch only
fetch first 1 row only
optimize for 1 row
with CS;
/end-free
P GetCustInf E
</pre>
<p>As of V7R1 of the operating system, the above program would not necessarily need the prototype in a separate file, so it could be completely written as:
</p>
<div class="mw-highlight mw-highlight-lang-sql mw-content-ltr" dir="ltr"><pre><span class="w"> </span><span class="n">H</span><span class="w"> </span><span class="n">main</span><span class="p">(</span><span class="n">GetCustInf</span><span class="p">)</span>
<span class="w"> </span><span class="n">D</span><span class="w"> </span><span class="n">ARMSTF1</span><span class="w"> </span><span class="n">E</span><span class="w"> </span><span class="n">DS</span>
<span class="w"> </span><span class="n">P</span><span class="w"> </span><span class="n">GetCustInf</span><span class="w"> </span><span class="n">B</span>
<span class="w"> </span><span class="n">D</span><span class="w"> </span><span class="n">GetCustInf</span><span class="w"> </span><span class="n">PI</span><span class="w"> </span><span class="n">extpgm</span><span class="p">(</span><span class="s1">'CUS001'</span><span class="p">)</span>
<span class="w"> </span><span class="n">D</span><span class="w"> </span><span class="n">inCusNo</span><span class="w"> </span><span class="k">like</span><span class="p">(</span><span class="n">arCNum</span><span class="p">)</span><span class="w"> </span><span class="n">const</span>
<span class="w"> </span><span class="n">D</span><span class="w"> </span><span class="n">outName</span><span class="w"> </span><span class="k">like</span><span class="p">(</span><span class="n">arName</span><span class="p">)</span>
<span class="w"> </span><span class="n">D</span><span class="w"> </span><span class="n">outAddr1</span><span class="w"> </span><span class="k">like</span><span class="p">(</span><span class="n">arAdd1</span><span class="p">)</span>
<span class="w"> </span><span class="n">D</span><span class="w"> </span><span class="n">outAddr2</span><span class="w"> </span><span class="k">like</span><span class="p">(</span><span class="n">arAdd2</span><span class="p">)</span>
<span class="w"> </span><span class="n">D</span><span class="w"> </span><span class="n">outCity</span><span class="w"> </span><span class="k">like</span><span class="p">(</span><span class="n">arCity</span><span class="p">)</span>
<span class="w"> </span><span class="n">D</span><span class="w"> </span><span class="n">outState</span><span class="w"> </span><span class="k">like</span><span class="p">(</span><span class="n">arStte</span><span class="p">)</span>
<span class="w"> </span><span class="n">D</span><span class="w"> </span><span class="n">outZip</span><span class="w"> </span><span class="k">like</span><span class="p">(</span><span class="n">arZip</span><span class="p">)</span>
<span class="w"> </span><span class="o">/</span><span class="k">free</span>
<span class="w"> </span><span class="k">exec</span><span class="w"> </span><span class="k">sql</span><span class="w"> </span><span class="k">select</span><span class="w"> </span><span class="n">arName</span><span class="p">,</span><span class="w"> </span><span class="n">arAdd1</span><span class="p">,</span><span class="w"> </span><span class="n">arAdd2</span><span class="p">,</span><span class="w"> </span><span class="n">arCity</span><span class="p">,</span><span class="w"> </span><span class="n">arStte</span><span class="p">,</span><span class="w"> </span><span class="n">arZip</span>
<span class="w"> </span><span class="k">into</span><span class="w"> </span><span class="p">:</span><span class="n">outName</span><span class="p">,</span><span class="w"> </span><span class="p">:</span><span class="n">outAddr1</span><span class="p">,</span><span class="w"> </span><span class="p">:</span><span class="n">outAddr2</span><span class="p">,</span><span class="w"> </span><span class="p">:</span><span class="n">outCity</span><span class="p">,</span><span class="w"> </span><span class="p">:</span><span class="n">outState</span><span class="p">,</span>
<span class="w"> </span><span class="p">:</span><span class="n">outZip</span>
<span class="w"> </span><span class="k">from</span><span class="w"> </span><span class="n">ARMSTF1</span>
<span class="w"> </span><span class="k">where</span><span class="w"> </span><span class="n">arCNum</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">:</span><span class="n">inCusNo</span>
<span class="w"> </span><span class="k">fetch</span><span class="w"> </span><span class="k">first</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="w"> </span><span class="k">only</span>
<span class="w"> </span><span class="k">with</span><span class="w"> </span><span class="n">CS</span>
<span class="w"> </span><span class="n">use</span><span class="w"> </span><span class="n">currently</span><span class="w"> </span><span class="k">committed</span><span class="p">;</span>
<span class="w"> </span><span class="o">/</span><span class="k">end</span><span class="o">-</span><span class="k">free</span>
<span class="w"> </span><span class="n">P</span><span class="w"> </span><span class="n">GetCustInf</span><span class="w"> </span><span class="n">E</span>
</pre></div>
<p>Lastly, if you apply the compiler PTFs related Technology Refresh 7 (TR7) to your 7.1 operating system, then the above program can be coded completely in free-form, as follows:
</p>
<div class="mw-highlight mw-highlight-lang-sql mw-content-ltr" dir="ltr"><pre><span class="w"> </span><span class="n">ctl</span><span class="o">-</span><span class="n">opt</span><span class="w"> </span><span class="n">main</span><span class="p">(</span><span class="n">GetCustInf</span><span class="p">);</span>
<span class="w"> </span><span class="n">dcl</span><span class="o">-</span><span class="n">ds</span><span class="w"> </span><span class="n">ARMSTF1</span><span class="w"> </span><span class="n">ext</span><span class="w"> </span><span class="k">end</span><span class="o">-</span><span class="n">ds</span><span class="p">;</span>
<span class="w"> </span><span class="n">dcl</span><span class="o">-</span><span class="n">proc</span><span class="w"> </span><span class="n">GetCustInf</span><span class="p">;</span>
<span class="w"> </span><span class="n">dcl</span><span class="o">-</span><span class="n">pi</span><span class="w"> </span><span class="o">*</span><span class="n">n</span><span class="w"> </span><span class="n">extpgm</span><span class="p">(</span><span class="s1">'CUS001'</span><span class="p">);</span>
<span class="w"> </span><span class="n">inCusNo</span><span class="w"> </span><span class="k">like</span><span class="p">(</span><span class="n">arCNum</span><span class="p">)</span><span class="w"> </span><span class="n">const</span><span class="p">;</span>
<span class="w"> </span><span class="n">outName</span><span class="w"> </span><span class="k">like</span><span class="p">(</span><span class="n">arName</span><span class="p">);</span>
<span class="w"> </span><span class="n">outAddr1</span><span class="w"> </span><span class="k">like</span><span class="p">(</span><span class="n">arAdd1</span><span class="p">);</span>
<span class="w"> </span><span class="n">outAddr2</span><span class="w"> </span><span class="k">like</span><span class="p">(</span><span class="n">arAdd2</span><span class="p">);</span>
<span class="w"> </span><span class="n">outCity</span><span class="w"> </span><span class="k">like</span><span class="p">(</span><span class="n">arCity</span><span class="p">);</span>
<span class="w"> </span><span class="n">outState</span><span class="w"> </span><span class="k">like</span><span class="p">(</span><span class="n">arStte</span><span class="p">);</span>
<span class="w"> </span><span class="n">outZip</span><span class="w"> </span><span class="k">like</span><span class="p">(</span><span class="n">arZip</span><span class="p">);</span>
<span class="w"> </span><span class="k">end</span><span class="o">-</span><span class="n">pi</span><span class="p">;</span>
<span class="w"> </span><span class="k">exec</span><span class="w"> </span><span class="k">sql</span><span class="w"> </span><span class="k">select</span><span class="w"> </span><span class="n">arName</span><span class="p">,</span><span class="w"> </span><span class="n">arAdd1</span><span class="p">,</span><span class="w"> </span><span class="n">arAdd2</span><span class="p">,</span><span class="w"> </span><span class="n">arCity</span><span class="p">,</span><span class="w"> </span><span class="n">arStte</span><span class="p">,</span><span class="w"> </span><span class="n">arZip</span>
<span class="w"> </span><span class="k">into</span><span class="w"> </span><span class="p">:</span><span class="n">outName</span><span class="p">,</span><span class="w"> </span><span class="p">:</span><span class="n">outAddr1</span><span class="p">,</span><span class="w"> </span><span class="p">:</span><span class="n">outAddr2</span><span class="p">,</span><span class="w"> </span><span class="p">:</span><span class="n">outCity</span><span class="p">,</span><span class="w"> </span><span class="p">:</span><span class="n">outState</span><span class="p">,</span>
<span class="w"> </span><span class="p">:</span><span class="n">outZip</span>
<span class="w"> </span><span class="k">from</span><span class="w"> </span><span class="n">ARMSTF1</span>
<span class="w"> </span><span class="k">where</span><span class="w"> </span><span class="n">arCNum</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">:</span><span class="n">inCusNo</span>
<span class="w"> </span><span class="k">fetch</span><span class="w"> </span><span class="k">first</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="w"> </span><span class="k">only</span>
<span class="w"> </span><span class="k">with</span><span class="w"> </span><span class="n">CS</span>
<span class="w"> </span><span class="n">use</span><span class="w"> </span><span class="n">currently</span><span class="w"> </span><span class="k">committed</span><span class="p">;</span>
<span class="w"> </span><span class="k">return</span><span class="p">;</span>
<span class="w"> </span><span class="k">end</span><span class="o">-</span><span class="n">proc</span><span class="p">;</span>
</pre></div>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */


.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}


/* end https://en.wikipedia.org/ */
</style><div class="reflist">
<div class="mw-references-wrap mw-references-columns"><ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */


.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}


/* end https://en.wikipedia.org/ */
</style><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_72/rzasc/rpgintro.htm">"RPG ILE Introduction"</a>. IBM. June 2012. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20240229162212/https://www.ibm.com/docs/en/i/7.2?topic=guide-ile-rpg-introduction">Archived</a> from the original on 2024-02-29<span class="reference-accessdate">. Retrieved <span class="nowrap">2021-03-16</span></span>.</cite></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text"><cite id="CITEREFTony_BaritzDavid_Dunne1991" class="citation book cs1">Tony Baritz; David Dunne (1991). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=F6tQAAAAMAAJ"><i>AS/400--concepts and Facilities</i></a>. McGraw-Hill. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-0-07-018301-8</bdi>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20240229162220/https://books.google.com/books?id=F6tQAAAAMAAJ">Archived</a> from the original on 2024-02-29<span class="reference-accessdate">. Retrieved <span class="nowrap">2021-03-16</span></span>.</cite></span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text"><cite id="CITEREFAlex_Woodie2020" class="citation web cs1">Alex Woodie (2020-08-24). <a rel="nofollow" class="external text" href="https://www.itjungle.com/2020/08/24/is-it-time-to-rename-rpg/">"Is It Time To Rename RPG?"</a>. <i>itjungle.com</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20210423084718/https://www.itjungle.com/2020/08/24/is-it-time-to-rename-rpg/">Archived</a> from the original on 2021-04-23<span class="reference-accessdate">. Retrieved <span class="nowrap">2021-03-16</span></span>.</cite></span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><cite class="citation book cs1"><i>7070/7074 Compiler Systems: Report Program Generator</i>. <a href="IBM" title="IBM">IBM</a>. C28-6113.</cite></span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text"><cite class="citation book cs1"><a rel="nofollow" class="external text" href="http://bitsavers.org/pdf/ibm/7070/C28-6192_7070_RPG_System_Analysis_Guide_1962.pdf"><i>Programming Systems Analysis Guide - IBM 7070 Series Report Program Generator</i></a> <span class="cs1-format">(PDF)</span>. <a href="IBM" title="IBM">IBM</a>. 1962. C28-6192. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20240119173806/http://bitsavers.org/pdf/ibm/7070/C28-6192_7070_RPG_System_Analysis_Guide_1962.pdf">Archived</a> <span class="cs1-format">(PDF)</span> from the original on January 19, 2024<span class="reference-accessdate">. Retrieved <span class="nowrap">January 19,</span> 2024</span>.</cite></span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text"><cite class="citation book cs1"><a rel="nofollow" class="external text" href="https://bitsavers.org/pdf/ibm/360/rpg/GC24-3337-6_RPG_Language_Specifications_Jul73.pdf"><i>IBM System/360 - Operating System - RPG Language Specifications - Program Number 380S-RG-038 (OS)</i></a> <span class="cs1-format">(PDF)</span> (Seventh&nbsp;ed.). <a href="IBM" title="IBM">IBM</a>. July 1973. GC24-3337-6. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20240119175859/https://bitsavers.org/pdf/ibm/360/rpg/GC24-3337-6_RPG_Language_Specifications_Jul73.pdf">Archived</a> <span class="cs1-format">(PDF)</span> from the original on January 19, 2024<span class="reference-accessdate">. Retrieved <span class="nowrap">January 19,</span> 2024</span>.</cite></span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://21cs.com/vsen/">"21CS VSEn"</a>. 21st Century Software<span class="reference-accessdate">. Retrieved <span class="nowrap">2025-02-22</span></span>.</cite></span>
</li>
<li id="cite_note-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-8">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20210502121456/http://www-03.ibm.com/services/supline/products/sl2ci162.html">"Supported product list"</a>. IBM. 2021-03-16. Archived from <a rel="nofollow" class="external text" href="https://www-03.ibm.com/services/supline/products/sl2ci162.html">the original</a> on 2021-05-02<span class="reference-accessdate">. Retrieved <span class="nowrap">2021-03-17</span></span>.</cite></span>
</li>
<li id="cite_note-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-9">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://assets.unisys.com/Documents/Global/ProductInformationSheets/PI_170396_ClearPathMCPExpressRelease18.pdf">"ClearPath MCP Express"</a> <span class="cs1-format">(PDF)</span>. Unisys. 2017. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20201112024037/https://assets.unisys.com/Documents/Global/ProductInformationSheets/PI_170396_ClearPathMCPExpressRelease18.pdf">Archived</a> <span class="cs1-format">(PDF)</span> from the original on 2020-11-12<span class="reference-accessdate">. Retrieved <span class="nowrap">2021-03-17</span></span>.</cite></span>
</li>
<li id="cite_note-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-10">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://asna.com/us/products/visual-rpg">"Visual RPG for .NET"</a>. <i>asna.com</i>. ASNA. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20220403145810/https://asna.com/us/products/visual-rpg">Archived</a> from the original on 3 April 2022<span class="reference-accessdate">. Retrieved <span class="nowrap">3 April</span> 2022</span>.</cite></span>
</li>
<li id="cite_note-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-11">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.migrationspecialties.com/Migration-RPG.html">"Migration RPG"</a>. <i>migrationspecialties.com</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20210517003651/http://www.migrationspecialties.com/Migration-RPG.html">Archived</a> from the original on 2021-05-17<span class="reference-accessdate">. Retrieved <span class="nowrap">2021-03-17</span></span>.</cite></span>
</li>
<li id="cite_note-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-12">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://www-03.ibm.com/ibm/history/documents/pdf/HistoryofIBMDataProcessing.pdf"><i>"...IBM 1401 and the Report Program Generator (RPG) contributed significantly to this success..."</i></a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20120124182914/http://www-03.ibm.com/ibm/history/documents/pdf/HistoryofIBMDataProcessing.pdf">Archived</a> 2012-01-24 at the <a href="Wayback_Machine" title="Wayback Machine">Wayback Machine</a>, IBM 1401 Data Processing System / 1959</span>
</li>
<li id="cite_note-13"><span class="mw-cite-backlink"><b><a href="#cite_ref-13">^</a></b></span> <span class="reference-text">but it says 1965, rather than the 1959 mentioned here.</span>
</li>
<li id="cite_note-14"><span class="mw-cite-backlink"><b><a href="#cite_ref-14">^</a></b></span> <span class="reference-text"><cite class="citation book cs1"><i>7070/7074 Compiler Systems: Report Program Generator</i>. <a href="IBM" title="IBM">IBM</a>. C28-6113.</cite></span>
</li>
<li id="cite_note-15"><span class="mw-cite-backlink"><b><a href="#cite_ref-15">^</a></b></span> <span class="reference-text"><cite class="citation book cs1"><a rel="nofollow" class="external text" href="http://bitsavers.org/pdf/ibm/7070/C28-6192_7070_RPG_System_Analysis_Guide_1962.pdf"><i>Programming Systems Analysis Guide - IBM 7070 Series Report Program Generator</i></a> <span class="cs1-format">(PDF)</span>. <a href="IBM" title="IBM">IBM</a>. 1962. C28-6192. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20240119173806/http://bitsavers.org/pdf/ibm/7070/C28-6192_7070_RPG_System_Analysis_Guide_1962.pdf">Archived</a> <span class="cs1-format">(PDF)</span> from the original on January 19, 2024<span class="reference-accessdate">. Retrieved <span class="nowrap">January 19,</span> 2024</span>.</cite></span>
</li>
<li id="cite_note-16"><span class="mw-cite-backlink"><b><a href="#cite_ref-16">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://archive.today/20121217164248/https://www-304.ibm.com/support/docview.wss?uid=nas1f23d225573c211a186256a240067a3da">"Generating Random Numbers in ILE RPG Using the CEERAN0 API"</a>, IBM.com</span>
</li>
<li id="cite_note-17"><span class="mw-cite-backlink"><b><a href="#cite_ref-17">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://www.ibmsystemsmag.com/Blogs/iDevelop/April-2015/How-Did-We-Miss-RPG-IV-s-Coming-of-Age-/">"How did we miss RPG IV's Coming of Age?"</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20170303042652/http://www.ibmsystemsmag.com/Blogs/iDevelop/April-2015/How-Did-We-Miss-RPG-IV-s-Coming-of-Age-/">Archived</a> 2017-03-03 at the <a href="Wayback_Machine" title="Wayback Machine">Wayback Machine</a>, ibmsystemsmag.com</span>
</li>
<li id="cite_note-18"><span class="mw-cite-backlink"><b><a href="#cite_ref-18">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.ibm.com/docs/en/rdfi/9.6.0?topic=languages-rpg400">"RPG/400"</a>. <i>IBM.com</i>. International Business Machines Corporation. 8 May 2018. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20220403171745/https://www.ibm.com/docs/en/rdfi/9.6.0?topic=languages-rpg400">Archived</a> from the original on 3 April 2022<span class="reference-accessdate">. Retrieved <span class="nowrap">4 April</span> 2022</span>.</cite></span>
</li>
<li id="cite_note-19"><span class="mw-cite-backlink"><b><a href="#cite_ref-19">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.ibm.com/docs/en/rdfi/9.6.0?topic=reference-ile-rpg">"ILE RPG Reference"</a>. <i>IBM.com</i>. International Business Machines Corporation. June 2012. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20220403170239/https://www.ibm.com/docs/en/rdfi/9.6.0?topic=reference-ile-rpg">Archived</a> from the original on 3 April 2022<span class="reference-accessdate">. Retrieved <span class="nowrap">4 April</span> 2022</span>.</cite></span>
</li>
<li id="cite_note-20"><span class="mw-cite-backlink"><b><a href="#cite_ref-20">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.ibm.com/docs/en/rdfi/9.6.0?topic=guide-ile-rpg-programmers">"ILE RPG Programmer's Guide"</a>. <i>IBM.com</i>. International Business Machines Corporation. June 2012. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20220403171745/https://www.ibm.com/docs/en/rdfi/9.6.0?topic=guide-ile-rpg-programmers">Archived</a> from the original on 3 April 2022<span class="reference-accessdate">. Retrieved <span class="nowrap">4 April</span> 2022</span>.</cite></span>
</li>
<li id="cite_note-21"><span class="mw-cite-backlink"><b><a href="#cite_ref-21">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.ibm.com/docs/en/rdfi/9.6.0?topic=airpg-who-should-use-this-guide">"Who Should Use This Guide"</a>. <i>IBM.com</i>. International Business Machines Corporation. June 2012. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20220403171743/https://www.ibm.com/docs/en/rdfi/9.6.0?topic=airpg-who-should-use-this-guide">Archived</a> from the original on 3 April 2022<span class="reference-accessdate">. Retrieved <span class="nowrap">4 April</span> 2022</span>.</cite></span>
</li>
<li id="cite_note-22"><span class="mw-cite-backlink"><b><a href="#cite_ref-22">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.ibm.com/docs/en/rdfi/9.6.0?topic=information-high-level-languages">"High Level Languages"</a>. <i>IBM.com</i>. International Business Machines Corporation. 8 May 2018. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20220403171742/https://www.ibm.com/docs/en/rdfi/9.6.0?topic=information-high-level-languages">Archived</a> from the original on 3 April 2022<span class="reference-accessdate">. Retrieved <span class="nowrap">4 April</span> 2022</span>.</cite></span>
</li>
<li id="cite_note-23"><span class="mw-cite-backlink"><b><a href="#cite_ref-23">^</a></b></span> <span class="reference-text"><cite id="CITEREFParis,_JonGantner,_Susan" class="citation web cs1"><a href="Jon_Paris" title="Jon Paris">Paris, Jon</a>; Gantner, Susan. <a rel="nofollow" class="external text" href="http://ibmsystemsmag.blogs.com/idevelop/2013/10/as-you-may-have-already-heard-there-was-a-major-technology-refresh-tr-announcement-yesterday-check-out-fellow-blogger-st.html">"Totally Free RPG"</a>. IBM Systems Magazine. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20140308153010/http://ibmsystemsmag.blogs.com/idevelop/2013/10/as-you-may-have-already-heard-there-was-a-major-technology-refresh-tr-announcement-yesterday-check-out-fellow-blogger-st.html">Archived</a> from the original on 8 March 2014<span class="reference-accessdate">. Retrieved <span class="nowrap">8 March</span> 2014</span>.</cite></span>
</li>
<li id="cite_note-24"><span class="mw-cite-backlink"><b><a href="#cite_ref-24">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.ibm.com/products/rational-developer-for-i">"IBM Rational Developer for i"</a>. <i>IBM.com</i>. International Business Machines Corporation. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20220403060839/https://www.ibm.com/products/rational-developer-for-i">Archived</a> from the original on 3 April 2022<span class="reference-accessdate">. Retrieved <span class="nowrap">3 April</span> 2022</span>.</cite></span>
</li>
<li id="cite_note-25"><span class="mw-cite-backlink"><b><a href="#cite_ref-25">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.ibm.com/common/ssi/ShowDoc.wss?docURL=/common/ssi/rep_sm/s/877/ENUS5770-WDS/index.html">"5770-WDS IBM Rational Development Studio for i V7.4"</a>. <i>IBM.com</i>. International Business Machines Corporation. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20220403060839/https://www.ibm.com/common/ssi/ShowDoc.wss?docURL=/common/ssi/rep_sm/s/877/ENUS5770-WDS/index.html">Archived</a> from the original on 3 April 2022<span class="reference-accessdate">. Retrieved <span class="nowrap">3 April</span> 2022</span>.</cite></span>
</li>
<li id="cite_note-26"><span class="mw-cite-backlink"><b><a href="#cite_ref-26">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.ibm.com/common/ssi/ShowDoc.wss?docURL=/common/ssi/rep_sm/s/877/ENUS5770-WDS/index.html">"5770-WDS IBM Rational Development Studio for i V7.4"</a>. <i>IBM.com</i>. International Business Machines Corporation. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20220403060843/https://www.ibm.com/common/ssi/ShowDoc.wss?docURL=/common/ssi/rep_sm/s/877/ENUS5770-WDS/index.html">Archived</a> from the original on 3 April 2022<span class="reference-accessdate">. Retrieved <span class="nowrap">4 April</span> 2022</span>.</cite></span>
</li>
<li id="cite_note-27"><span class="mw-cite-backlink"><b><a href="#cite_ref-27">^</a></b></span> <span class="reference-text"><cite id="CITEREFIBM" class="citation web cs1">IBM. <a rel="nofollow" class="external text" href="https://www.ibm.com/support/pages/node/1106229">"RPG Cafe"</a>. <i>IBM.com</i>. International Business Machines Corporation. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20220403042552/https://www.ibm.com/support/pages/node/1106229">Archived</a> from the original on 3 April 2022<span class="reference-accessdate">. Retrieved <span class="nowrap">3 April</span> 2022</span>.</cite></span>
</li>
<li id="cite_note-28"><span class="mw-cite-backlink"><b><a href="#cite_ref-28">^</a></b></span> <span class="reference-text"><cite id="CITEREFIBM" class="citation web cs1">IBM. <a rel="nofollow" class="external text" href="https://www.ibm.com/support/pages/node/1119129/">"IBM i Technology Updates"</a>. <i>IBM.com</i>. International Business Machines Corporation. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20220412041649/https://www.ibm.com/support/pages/node/1119129">Archived</a> from the original on 12 April 2022<span class="reference-accessdate">. Retrieved <span class="nowrap">3 April</span> 2022</span>.</cite></span>
</li>
<li id="cite_note-29"><span class="mw-cite-backlink"><b><a href="#cite_ref-29">^</a></b></span> <span class="reference-text"><cite id="CITEREFIBM" class="citation web cs1">IBM. <a rel="nofollow" class="external text" href="https://www.ibm.com/support/pages/ibm-i-technology-refresh">"IBM i Technology Refresh"</a>. <i>IBM.com</i>. International Business Machines Corporation. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20220403042552/https://www.ibm.com/support/pages/ibm-i-technology-refresh">Archived</a> from the original on 3 April 2022<span class="reference-accessdate">. Retrieved <span class="nowrap">3 April</span> 2022</span>.</cite></span>
</li>
<li id="cite_note-30"><span class="mw-cite-backlink"><b><a href="#cite_ref-30">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.ibm.com/support/knowledgecenter/en/ssw_i5_54/books/c0918160.pdf">"RPG/400 User's Guide"</a> <span class="cs1-format">(PDF)</span>. <i>Ibm.com</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20170807070650/https://www.ibm.com/support/knowledgecenter/en/ssw_i5_54/books/c0918160.pdf">Archived</a> <span class="cs1-format">(PDF)</span> from the original on 7 August 2017<span class="reference-accessdate">. Retrieved <span class="nowrap">6 August</span> 2017</span>.</cite></span>
</li>
<li id="cite_note-31"><span class="mw-cite-backlink"><b><a href="#cite_ref-31">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.easy400.net/cgidev2/start">"EASY400 CGIDEV2"</a>. <i>Easy400.net</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20190326190652/https://www.easy400.net/cgidev2/start">Archived</a> from the original on 26 March 2019<span class="reference-accessdate">. Retrieved <span class="nowrap">26 March</span> 2019</span>.</cite></span>
</li>
<li id="cite_note-32"><span class="mw-cite-backlink"><b><a href="#cite_ref-32">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.ibm.com/support/knowledgecenter/en/ssw_ibm_i_72/rzasm/roaIntro.htm">"Rational Open Access: RPG Edition"</a>. IBM. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20240229162204/https://www.ibm.com/docs/en/i/7.2?topic=edition-rational-open-access-rpg">Archived</a> from the original on 2024-02-29<span class="reference-accessdate">. Retrieved <span class="nowrap">2021-03-17</span></span>.</cite></span>
</li>
</ol></div></div>
<div class="mw-heading mw-heading2"><h2 id="Further_reading">Further reading</h2></div>
<ul><li><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20101224021048/http://hopl.murdoch.edu.au/showlanguage2.prx?exp=35">"9PAC, Report Generator"</a>. History of Programming Languages (HOPL), Murdoch University, AU. 2006. Archived from <a rel="nofollow" class="external text" href="http://hopl.murdoch.edu.au/showlanguage2.prx?exp=35">the original</a> on 2010-12-24<span class="reference-accessdate">. Retrieved <span class="nowrap">2008-04-01</span></span>.</cite></li>
<li><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20110415045221/http://hopl.murdoch.edu.au/showlanguage2.prx?exp=207">"RPG, Report Program Generator"</a>. History of Programming Languages (HOPL), Murdoch University, AU. 2006. Archived from <a rel="nofollow" class="external text" href="http://hopl.murdoch.edu.au/showlanguage2.prx?exp=207">the original</a> on 2011-04-15<span class="reference-accessdate">. Retrieved <span class="nowrap">2008-04-01</span></span>.</cite></li>
<li><cite id="CITEREFDuCharme2006" class="citation web cs1">DuCharme, Bob (2006-02-26). <a rel="nofollow" class="external text" href="http://www.snee.com/bobdc.blog/2006/02/pulling_data_out_of_computers.html">"Pulling data out of computers in the mid-twentieth and early twenty-first centuries"</a>.</cite></li>
<li><cite id="CITEREFCozzi1996" class="citation web cs1">Cozzi, Robert (1996). <a rel="nofollow" class="external text" href="http://mc-store.com/5080.html">"The Modern RPG IV Language"</a>.</cite></li>
<li><cite id="CITEREFShellyThomas_J._Cashman1977" class="citation book cs1">Shelly, Gary B.; Thomas J. Cashman (1977). <span class="id-lock-registration" title="Free registration required"><a rel="nofollow" class="external text" href="https://archive.org/details/introductiontoco0000shel/"><i>Introduction to Computer Programming RPG</i></a></span>. Fullerton, California: Anaheim Publishing Company. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>0-88236-225-9</bdi>.</cite></li></ul>
<div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2></div>
<ul><li><cite id="CITEREFSmithMartin_BarbeauSusan_GantnerJon_Paris2000" class="citation web cs1">Smith, Brian R.; Martin Barbeau; Susan Gantner; Jon Paris; Zdravko Vincetic; Vladimir Zupka (April 25, 2000). <a rel="nofollow" class="external text" href="https://www.redbooks.ibm.com/redbooks/pdfs/sg245402.pdf">"Who Knew You Could Do That with RPG IV? A Sorcerer's Guide to System Access and More"</a> <span class="cs1-format">(PDF)</span>. IBM International Technical Support Organization<span class="reference-accessdate">. Retrieved <span class="nowrap">2012-02-18</span></span>.</cite> "This redbook is focused on RPG IV as a modern, thriving, and rich application development language for the 21st century."</li>
<li><a rel="nofollow" class="external text" href="https://www.midrange.com/">Midrange.com</a>&nbsp;— A large number of code examples are available here</li>
<li><a rel="nofollow" class="external text" href="https://www.rpgpgm.com/">RPGPGM.COM</a>&nbsp;— An extensive resource of articles giving examples of RPG code and related programming</li>
<li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20240227062509/http://www.coztools.com/iOpen">RPG Open</a>&nbsp;— Free (open source) resources for RPG IV and IBM i application development.</li>
<li><cite id="CITEREFIBM1964" class="citation book cs1">IBM (1964). <a rel="nofollow" class="external text" href="https://www.bitsavers.org/pdf/ibm/1401/C24-3261-1_1401_diskRPG.pdf"><i>IBM 1401 RPG manual</i></a> <span class="cs1-format">(PDF)</span>. C24-3261-1.</cite></li>
<li><cite id="CITEREFIBM2016" class="citation book cs1">IBM (2016). <a rel="nofollow" class="external text" href="https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_73/rzasc/sc092507.pdf"><i>ILE RPG Programmer's Guide</i></a> <span class="cs1-format">(PDF)</span>. SC09-2507-10.</cite></li>
<li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20120314093748/http://gsf-soft.com/Documents/RPG-ZOS.shtml">RPG II for MVS, OS/390 and z/OS</a>&nbsp;— Status of the IBM RPG II product in z/OS</li></ul>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">
/* start https://en.wikipedia.org/ */


.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}


/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1236075235">
/* start https://en.wikipedia.org/ */


.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}


/* end https://en.wikipedia.org/ */
</style></div><div role="navigation" class="navbox" aria-labelledby="IBM940" style="padding:3px"><table class="nowraplinks hlist mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><style data-mw-deduplicate="TemplateStyles:r1239400231">
/* start https://en.wikipedia.org/ */


.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}


/* end https://en.wikipedia.org/ */
</style><div id="IBM940" style="font-size:114%;margin:0 4em"><a href="IBM" title="IBM">IBM</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="History_of_IBM" title="History of IBM">History</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="History_of_IBM" title="History of IBM">History</a>
<ul><li><a href="IBM_and_World_War_II" title="IBM and World War II">World War II</a></li></ul></li>
<li><a href="List_of_mergers_and_acquisitions_by_IBM" title="List of mergers and acquisitions by IBM">Mergers and acquisitions</a>
<ul><li><a href="Acquisition_of_the_IBM_PC_business_by_Lenovo" title="Acquisition of the IBM PC business by Lenovo">PC business acquisition by Lenovo</a></li></ul></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="List_of_IBM_products" title="List of IBM products">Products</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th id="Hardware8" scope="row" class="navbox-group" style="width:1%">Hardware</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%">Current</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="IBM_mainframe" title="IBM mainframe">Mainframe</a>
<ul><li><a href="IBM_Z" title="IBM Z">IBM Z</a></li></ul></li>
<li><a href="IBM_Power_microprocessors" title="IBM Power microprocessors">Power microprocessors</a></li>
<li><a href="IBM_Power_Systems" title="IBM Power Systems">Power Systems</a></li>
<li><a href="IBM_storage" title="IBM storage">Storage</a>
<ul><li><a href="IBM_FlashSystem" title="IBM FlashSystem">FlashSystem</a></li>
<li><a href="IBM_DS8000_series" title="IBM DS8000 series">DS8000</a></li></ul></li>
<li>Quantum
<ul><li><a href="IBM_Q_System_One" title="IBM Q System One">Q System One</a></li>
<li><a href="IBM_Q_System_Two" title="IBM Q System Two">Q System Two</a></li>
<li><a href="IBM_Eagle" title="IBM Eagle">Eagle</a></li>
<li><a href="IBM_Osprey" title="IBM Osprey">Osprey</a></li>
<li><a href="IBM_Heron" title="IBM Heron">Heron</a></li>
<li><a href="IBM_Condor" title="IBM Condor">Condor</a></li></ul></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Former</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="IBM_Blue_Gene" title="IBM Blue Gene">Blue Gene</a></li>
<li><a href="Cell_(processor)" title="Cell (processor)">Cell microprocessors</a></li>
<li><a href="PowerPC" title="PowerPC">PowerPC</a></li>
<li><a href="Midrange_computer" title="Midrange computer">Midrange computer</a></li>
<li><a href="IBM_Personal_Computer" title="IBM Personal Computer">Personal Computer</a></li>
<li><a href="IBM_Selectric" title="IBM Selectric">Selectric</a></li>
<li><a href="ThinkPad" title="ThinkPad">ThinkPad</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><td colspan="2" class="navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Carbon_Design_System" title="Carbon Design System">Carbon Design System</a></li>
<li><a href="IBM_Cloud" title="IBM Cloud">Cloud</a>
<ul><li><a href="Cloudant" title="Cloudant">Cloudant</a></li></ul></li>
<li><a href="IBM_Cognos_Analytics" title="IBM Cognos Analytics">Cognos Analytics</a></li>
<li><a href="HCL_Connections" title="HCL Connections">Connections</a></li>
<li><a href="Criminal_Reduction_Utilising_Statistical_History" title="Criminal Reduction Utilising Statistical History">Criminal Reduction Utilising Statistical History</a></li>
<li><a href="Fortran" title="Fortran">Fortran</a></li>
<li><a href="ILOG" title="ILOG">ILOG</a></li>
<li><a href="IBM_Information_Management_Software" title="IBM Information Management Software">Information Management Software</a></li>
<li><a href="Lotus_Software" title="Lotus Software">Lotus Software</a></li>
<li><a href="History_of_IBM_mainframe_operating_systems" title="History of IBM mainframe operating systems">Mainframe operating systems</a></li>
<li><a href="IBM_Mashup_Center" title="IBM Mashup Center">Mashup Center</a></li>
<li><a href="IBM_Planning_Analytics" title="IBM Planning Analytics">Planning Analytics</a></li>
<li><a href="IBM_PureQuery" class="mw-redirect" title="IBM PureQuery">PureQuery</a></li>
<li><a href="IBM_Quantum_Platform" title="IBM Quantum Platform">Quantum Platform</a>
<ul><li><a href="Qiskit" title="Qiskit">Qiskit</a></li>
<li><a href="OpenQASM" title="OpenQASM">OpenQASM</a></li></ul></li>
<li><a href="Rational_Software" title="Rational Software">Rational Software</a></li>
<li><a href="SPSS" title="SPSS">SPSS</a></li>
<li><a href="Tivoli_Software" title="Tivoli Software">Tivoli Software</a>
<ul><li><a href="Tivoli_Service_Automation_Manager" title="Tivoli Service Automation Manager">Service Automation Manager</a></li></ul></li>
<li><a href="IBM_Watson" title="IBM Watson">Watson</a></li>
<li><a href="IBM_Watsonx" title="IBM Watsonx">Watsonx</a>
<ul><li><a href="IBM_Granite" title="IBM Granite">Granite</a></li></ul></li>
<li><a href="IBM_WebSphere" title="IBM WebSphere">WebSphere</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Business<br>entities</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%">Current</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Apptio" title="Apptio">Apptio</a></li>
<li><a href="IBM_Center_for_The_Business_of_Government" title="IBM Center for The Business of Government">Center for The Business of Government</a></li>
<li><a href="IBM_Consulting" title="IBM Consulting">Consulting</a>
<ul><li><a href="Promontory_Financial_Group" title="Promontory Financial Group">Promontory</a></li></ul></li>
<li><a href="Kenexa" title="Kenexa">Kenexa</a></li>
<li><a href="List_of_international_subsidiaries_of_IBM" title="List of international subsidiaries of IBM">International subsidiaries</a>
<ul><li><a href="IBM_India" title="IBM India">India</a></li></ul></li>
<li><a href="IBM_Press" title="IBM Press">Press</a></li>
<li><a href="Red_Hat" title="Red Hat">Red Hat</a></li>
<li><a href="IBM_Research" title="IBM Research">Research</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Former</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="AdStar" title="AdStar">AdStar</a></li>
<li><a href="AIM_alliance" title="AIM alliance">AIM alliance</a>
<ul><li><a href="Kaleida_Labs" title="Kaleida Labs">Kaleida Labs</a></li>
<li><a href="Taligent" title="Taligent">Taligent</a></li></ul></li>
<li><a href="Ambra_Computer_Corporation" title="Ambra Computer Corporation">Ambra Computer</a></li>
<li><a href="Cognos" title="Cognos">Cognos</a></li>
<li><a href="EduQuest" title="EduQuest">EduQuest</a></li>
<li><a href="Kyndryl" title="Kyndryl">Kyndryl</a></li>
<li><a href="Lexmark" title="Lexmark">Lexmark</a></li>
<li><a href="Merative" title="Merative">Merative</a></li>
<li><a href="IBM_Microelectronics" title="IBM Microelectronics">Microelectronics</a></li>
<li><a href="IBM_Product_Center" title="IBM Product Center">Product Center</a></li>
<li><a href="Science_Research_Associates" title="Science Research Associates">Science Research Associates</a></li>
<li><a href="Service_Bureau_Corporation" title="Service Bureau Corporation">Service Bureau</a></li>
<li><a href="The_Weather_Company" title="The Weather Company">The Weather Company</a> (<a href="Weather_Underground_(weather_service)" title="Weather Underground (weather service)">Weather Underground</a>)</li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Facilities</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li>Towers
<ul><li><a href="1250_Ren%C3%A9-L%C3%A9vesque" title="1250 René-Lévesque">1250 René-Lévesque</a>, Montreal, QC</li>
<li><a href="One_Atlantic_Center" title="One Atlantic Center">One Atlantic Center</a>, Atlanta, GA</li></ul></li>
<li>Software Labs
<ul><li><a href="IBM_Rome_Software_Lab" title="IBM Rome Software Lab">Rome Software Lab</a></li>
<li><a href="IBM_Toronto_Software_Lab" title="IBM Toronto Software Lab">Toronto Software Lab</a></li></ul></li>
<li>IBM Buildings
<ul><li><a href="AMA_Plaza" title="AMA Plaza">Chicago</a></li>
<li><a href="IBM_Building%2C_Honolulu" title="IBM Building, Honolulu">Honolulu</a></li>
<li><a href="590_Madison_Avenue" title="590 Madison Avenue">New York</a></li>
<li><a href="1200_Fifth" title="1200 Fifth">Seattle</a></li></ul></li>
<li>Facilities
<ul><li><a href="Thomas_J._Watson_Research_Center" title="Thomas J. Watson Research Center">Thomas J. Watson Research Center</a></li>
<li><a href="IBM_Hakozaki_Facility" title="IBM Hakozaki Facility">Hakozaki Facility</a></li>
<li><a href="IBM_Yamato_Facility" title="IBM Yamato Facility">Yamato Facility</a></li></ul></li>
<li><a href="Cambridge_Scientific_Center" title="Cambridge Scientific Center">Cambridge Scientific Center</a></li>
<li><a href="IBM_Hursley" title="IBM Hursley">IBM Hursley</a></li>
<li><a href="IBM_Canada_Head_Office_Building" title="IBM Canada Head Office Building">Canada Head Office Building</a></li>
<li><a href="IBM_Rochester" title="IBM Rochester">IBM Rochester</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Initiatives</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li>Academy of Technology</li>
<li><a href="IBM_Deep_Thunder" title="IBM Deep Thunder">Deep Thunder</a>
<ul><li><a href="Develothon" title="Develothon">Develothon</a></li></ul></li>
<li><a href="IBM_Fellow" title="IBM Fellow">Fellow</a></li>
<li><a href="IBM's_The_Great_Mind_Challenge" title="IBM's The Great Mind Challenge">The Great Mind Challenge</a></li>
<li><a href="Linux_Technology_Center" title="Linux Technology Center">Linux Technology Center</a></li>
<li><a href="IBM_SkillsBuild" title="IBM SkillsBuild">SkillsBuild</a></li>
<li><a href="Smarter_Planet" title="Smarter Planet">Smarter Planet</a></li>
<li><a href="IBM_Virtual_Universe_Community" title="IBM Virtual Universe Community">Virtual Universe Community</a></li>
<li><a href="World_Community_Grid" title="World Community Grid">World Community Grid</a></li>
<li><a href="IBM_Think_conference" title="IBM Think conference">Think conference</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Inventions</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Automated_teller_machine" class="mw-redirect" title="Automated teller machine">Automated teller machine</a></li>
<li><a href="Cynefin_framework" title="Cynefin framework">Cynefin framework</a></li>
<li><a href="Dynamic_random-access_memory" title="Dynamic random-access memory">DRAM</a></li>
<li><a href="Keypunch" title="Keypunch">Electronic keypunch</a></li>
<li><a href="Floppy_disk" title="Floppy disk">Floppy disk</a></li>
<li><a href="Hard_disk_drive" title="Hard disk drive">Hard disk drive</a></li>
<li><a href="Magnetic_stripe_card" class="mw-redirect" title="Magnetic stripe card">Magnetic stripe card</a></li>
<li><a href="Relational_model" title="Relational model">Relational model</a></li>
<li><a href="Sabre_(travel_reservation_system)" title="Sabre (travel reservation system)">Sabre airline reservation system</a></li>
<li><a href="Scanning_tunneling_microscope" title="Scanning tunneling microscope">Scanning tunneling microscope</a></li>
<li><a href="Swap_(finance)" title="Swap (finance)">Financial swaps</a></li>
<li><a href="Universal_Product_Code" title="Universal Product Code">Universal Product Code</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Terminology</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Big_Blue" class="mw-redirect" title="Big Blue">Big Blue</a></li>
<li><a href="Commercial_Processing_Workload" title="Commercial Processing Workload">Commercial Processing Workload</a></li>
<li><a href="Customer_engineer" title="Customer engineer">Customer engineer</a></li>
<li><a href="Globally_integrated_enterprise" title="Globally integrated enterprise">Globally integrated enterprise</a></li>
<li><a href="Electronic_business" title="Electronic business">e-business</a></li>
<li><a href="Think_(slogan)" title="Think (slogan)">Think slogan</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="List_of_IBM_CEOs" title="List of IBM CEOs">CEOs</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Thomas_J._Watson" title="Thomas J. Watson">Thomas J. Watson</a> (1914–1956)</li>
<li><a href="Thomas_J._Watson_Jr." title="Thomas J. Watson Jr.">Thomas Watson Jr.</a> (1956–1971)</li>
<li><a href="T._Vincent_Learson" title="T. Vincent Learson">T. Vincent Learson</a> (1971–1973)</li>
<li><a href="Frank_T._Cary" title="Frank T. Cary">Frank T. Cary</a> (1973–1981)</li>
<li><a href="John_R._Opel" title="John R. Opel">John R. Opel</a> (1981–1985)</li>
<li><a href="John_Fellows_Akers" title="John Fellows Akers">John Fellows Akers</a> (1985–1993)</li>
<li><a href="Lou_Gerstner" title="Lou Gerstner">Louis V. Gerstner Jr.</a> (1993–2002)</li>
<li><a href="Samuel_J._Palmisano" title="Samuel J. Palmisano">Samuel J. Palmisano</a> (2002–2011)</li>
<li><a href="Ginni_Rometty" title="Ginni Rometty">Ginni Rometty</a> (2012–2020)</li>
<li><a href="Arvind_Krishna" title="Arvind Krishna">Arvind Krishna</a> (since 2020)</li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Board of<br>directors</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Thomas_Buberl" title="Thomas Buberl">Thomas Buberl</a></li>
<li><a href="David_Farr_(businessman)" title="David Farr (businessman)">David Farr</a></li>
<li><a href="Alex_Gorsky" title="Alex Gorsky">Alex Gorsky</a></li>
<li><a href="Michelle_Howard" title="Michelle Howard">Michelle J. Howard</a></li>
<li><a href="Arvind_Krishna" title="Arvind Krishna">Arvind Krishna</a></li>
<li><a href="Andrew_Liveris" title="Andrew Liveris">Andrew Liveris</a></li>
<li><a href="Martha_E._Pollack" class="mw-redirect" title="Martha E. Pollack">Martha E. Pollack</a></li>
<li><a href="Joseph_R._Swedish" title="Joseph R. Swedish">Joseph R. Swedish</a></li>
<li><a href="Peter_Voser" title="Peter Voser">Peter R. Voser</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Other</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><i><a href="A_Boy_and_His_Atom" title="A Boy and His Atom">A Boy and His Atom</a></i></li>
<li>Big Blue sports teams
<ul><li><a href="IBM_Big_Blue_(X-League)" title="IBM Big Blue (X-League)">American football</a></li>
<li><a href="IBM_Big_Blue_(rugby_union)" title="IBM Big Blue (rugby union)">Rugby union</a></li></ul></li>
<li><a href="Common_Public_License" title="Common Public License">Common Public License</a>/<a href="IBM_Public_License" title="IBM Public License">IBM Public License</a>
<ul><li><i><a href="Wallace_v._International_Business_Machines_Corp." title="Wallace v. International Business Machines Corp.">Wallace v. International Business Machines Corp.</a></i></li></ul></li>
<li><a href="Deep_Blue_(chess_computer)" title="Deep Blue (chess computer)">Deep Blue</a></li>
<li><a href="Deep_Thought_(chess_computer)" title="Deep Thought (chess computer)">Deep Thought</a></li>
<li><a href="Dynamic_infrastructure" title="Dynamic infrastructure">Dynamic infrastructure</a></li>
<li><a href="GlobalFoundries" title="GlobalFoundries">GlobalFoundries</a></li>
<li><a href="GUIDE_International" title="GUIDE International">GUIDE International</a></li>
<li><i><a href="IBM_and_the_Holocaust" title="IBM and the Holocaust">IBM and the Holocaust</a></i></li>
<li><a href="IBM_international_chess_tournament" title="IBM international chess tournament">International chess tournament</a></li>
<li><a href="Lucifer_(cipher)" title="Lucifer (cipher)">Lucifer cipher</a></li>
<li><i><a href="Mathematica%3A_A_World_of_Numbers..._and_Beyond" title="Mathematica: A World of Numbers... and Beyond">Mathematica</a></i></li>
<li><a href="IBM_Plex" title="IBM Plex">IBM Plex</a></li>
<li><a href="SHARE_(computing)" title="SHARE (computing)">SHARE computing</a></li>
<li><a href="ScicomP" title="ScicomP">ScicomP</a></li>
<li><a href="IBM_and_unions" title="IBM and unions">Unions</a></li></ul>
</div></td></tr><tr><td class="navbox-abovebelow" colspan="2"><div>
<ul><li><span class="noviewer" typeof="mw:File"><span title="Commons page"></span></span> <a href="https://commons.wikimedia.org/wiki/IBM" class="extiw external" title="commons:IBM">Commons</a></li>
<li><span class="noviewer" typeof="mw:File"><span title="Category"></span></span> Category</li>
<li><span class="noviewer" typeof="mw:File"><span title="Template"></span></span> Navigational boxes
<ul><li>FOSS</li>
<li>Midrange computers</li>
<li>Operating systems</li>
<li>Personal computers</li>
<li>System/360</li>
<li>System/370</li>
<li>Typewriters</li>
<li>Vacuum tube computers</li></ul></li></ul>
</div></td></tr></tbody></table></div>
<div class="navbox-styles"></div><div role="navigation" class="navbox" aria-labelledby="Programming_languages625" style="padding:3px"><table class="nowraplinks hlist mw-collapsible expanded navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div id="Programming_languages625" style="font-size:114%;margin:0 4em"><a href="Programming_language" title="Programming language">Programming languages</a></div></th></tr><tr><td class="navbox-abovebelow" colspan="2"><div>
<ul><li><a href="Comparison_of_programming_languages" title="Comparison of programming languages">Comparison</a></li>
<li><a href="Timeline_of_programming_languages" title="Timeline of programming languages">Timeline</a></li>
<li><a href="History_of_programming_languages" title="History of programming languages">History</a></li></ul>
</div></td></tr><tr><td colspan="2" class="navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Ada_(programming_language)" title="Ada (programming language)">Ada</a></li>
<li><a href="ALGOL" title="ALGOL">ALGOL</a>
<ul><li><a href="Simula" title="Simula">Simula</a></li></ul></li>
<li><a href="APL_(programming_language)" title="APL (programming language)">APL</a></li>
<li><a href="Assembly_language" title="Assembly language">Assembly</a></li>
<li><a href="BASIC" title="BASIC">BASIC</a>
<ul><li><a href="Visual_Basic" title="Visual Basic">Visual Basic</a>
<ul><li><a href="Visual_Basic_(classic)" title="Visual Basic (classic)">classic</a></li>
<li><a href="Visual_Basic_(.NET)" title="Visual Basic (.NET)">.NET</a></li></ul></li></ul></li>
<li><a href="C_(programming_language)" title="C (programming language)">C</a></li>
<li><a href="C%2B%2B" title="C++">C++</a></li>
<li><a href="C_Sharp_(programming_language)" title="C Sharp (programming language)">C#</a></li>
<li><a href="COBOL" title="COBOL">COBOL</a></li>
<li><a href="Erlang_(programming_language)" title="Erlang (programming language)">Erlang</a>
<ul><li><a href="Elixir_(programming_language)" title="Elixir (programming language)">Elixir</a></li></ul></li>
<li><a href="Forth_(programming_language)" title="Forth (programming language)">Forth</a></li>
<li><a href="Fortran" title="Fortran">Fortran</a></li>
<li><a href="Go_(programming_language)" title="Go (programming language)">Go</a></li>
<li><a href="Haskell" title="Haskell">Haskell</a></li>
<li><a href="Java_(programming_language)" title="Java (programming language)">Java</a></li>
<li><a href="JavaScript" title="JavaScript">JavaScript</a></li>
<li><a href="Julia_(programming_language)" title="Julia (programming language)">Julia</a></li>
<li><a href="Kotlin_(programming_language)" title="Kotlin (programming language)">Kotlin</a></li>
<li><a href="Lisp_(programming_language)" title="Lisp (programming language)">Lisp</a></li>
<li><a href="Lua" title="Lua">Lua</a></li>
<li><a href="MATLAB" title="MATLAB">MATLAB</a></li>
<li><a href="ML_(programming_language)" title="ML (programming language)">ML</a>
<ul><li><a href="Caml" title="Caml">Caml </a>
<ul><li><a href="OCaml" title="OCaml">OCaml</a></li></ul></li></ul></li>
<li><a href="Pascal_(programming_language)" title="Pascal (programming language)">Pascal</a>
<ul><li><a href="Object_Pascal" title="Object Pascal">Object Pascal</a></li></ul></li>
<li><a href="Perl" title="Perl">Perl </a>
<ul><li><a href="Raku_(programming_language)" title="Raku (programming language)">Raku</a></li></ul></li>
<li><a href="PHP" title="PHP">PHP</a></li>
<li><a href="Prolog" title="Prolog">Prolog</a></li>
<li><a href="Python_(programming_language)" title="Python (programming language)">Python</a></li>
<li><a href="R_(programming_language)" title="R (programming language)">R</a></li>
<li><a href="Ruby_(programming_language)" title="Ruby (programming language)">Ruby</a></li>
<li><a href="Rust_(programming_language)" title="Rust (programming language)">Rust</a></li>
<li><a href="SAS_language" title="SAS language">SAS</a></li>
<li><a href="SQL" title="SQL">SQL</a></li>
<li><a href="Scratch_(programming_language)" title="Scratch (programming language)">Scratch</a></li>
<li><a href="Shell_script" title="Shell script">Shell</a></li>
<li><a href="Smalltalk" title="Smalltalk">Smalltalk</a></li>
<li><a href="Swift_(programming_language)" title="Swift (programming language)">Swift</a></li>
<li><i><a href="List_of_programming_languages" title="List of programming languages">more...</a></i></li></ul>
</div></td></tr><tr><td class="navbox-abovebelow" colspan="2"><div>
<ul><li><span class="noviewer" typeof="mw:File"><span title="List-Class article"></span></span> <b>Lists:</b> <a href="List_of_programming_languages" title="List of programming languages">Alphabetical</a></li>
<li><a href="List_of_programming_languages_by_type" title="List of programming languages by type">Categorical</a></li>
<li><a href="Generational_list_of_programming_languages" title="Generational list of programming languages">Generational</a></li>
<li><a href="Non-English-based_programming_languages" title="Non-English-based programming languages">Non-English-based</a></li>
<li><span class="noviewer" typeof="mw:File"><span title="Category"></span></span> Category</li></ul>
</div></td></tr></tbody></table></div>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1038841319">
/* start https://en.wikipedia.org/ */


.mw-parser-output .tooltip-dotted{border-bottom:1px dotted;cursor:help}


/* end https://en.wikipedia.org/ */
</style></div><div role="navigation" class="navbox authority-control" aria-labelledby="Authority_control_databases_frameless&amp;#124;text-top&amp;#124;10px&amp;#124;alt=Edit_this_at_Wikidata&amp;#124;link=https&amp;#58;//www.wikidata.org/wiki/Q840543#identifiers&amp;#124;class=noprint&amp;#124;Edit_this_at_Wikidata928" style="padding:3px"><table class="nowraplinks hlist mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div id="Authority_control_databases_frameless&amp;#124;text-top&amp;#124;10px&amp;#124;alt=Edit_this_at_Wikidata&amp;#124;link=https&amp;#58;//www.wikidata.org/wiki/Q840543#identifiers&amp;#124;class=noprint&amp;#124;Edit_this_at_Wikidata928" style="font-size:114%;margin:0 4em">Authority control databases </div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">National</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><span class="uid"><a rel="nofollow" class="external text" href="https://id.loc.gov/authorities/sh85115607">United States</a></span></li><li><span class="uid"><span class="rt-commentedText tooltip tooltip-dotted" title="RPG (programovací jazyk)"><a rel="nofollow" class="external text" href="https://aleph.nkp.cz/F/?func=find-c&amp;local_base=aut&amp;ccl_term=ica=ph118041&amp;CON_LNG=ENG">Czech Republic</a></span></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="https://www.nli.org.il/en/authorities/987007546256705171">Israel</a></span></li></ul></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Other</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><span class="uid"><a rel="nofollow" class="external text" href="https://lux.collections.yale.edu/view/concept/2833d0ec-db91-409b-9f6e-9ab393c9e2a3">Yale LUX</a></span></li></ul></div></td></tr></tbody></table></div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-02-24" href="https://en.wikipedia.org/wiki/?title=IBM_RPG&amp;oldid=1277376969">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>

</body></html>